Instead of ‘login’ and ‘password’ use your credentials from https://app.dataforseo.com/api-dashboard
<?php // You can download this file from here https://cdn.dataforseo.com/v3/examples/php/php_RestClient.zip require('RestClient.php'); $api_url = 'https://api.dataforseo.com/'; // Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-dashboard $client = new RestClient($api_url, null, 'login', 'password'); try { $result = array(); // #1 - using this method you can get a list of completed tasks // GET /v3/merchant/google/product_spec/tasks_ready $tasks_ready = $client->get('/v3/merchant/google/product_spec/tasks_ready'); // you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors if (isset($tasks_ready['status_code']) AND $tasks_ready['status_code'] === 20000) { foreach ($tasks_ready['tasks'] as $task) { if (isset($task['result'])) { foreach ($task['result'] as $task_ready) { // #2 - using this method you can get results of each completed task // GET /v3/merchant/google/product_spec/task_get/advanced/$id if (isset($task_ready['endpoint_advanced'])) { $result[] = $client->get($task_ready['endpoint_advanced']); } // #3 - another way to get the task results by id // GET /v3/merchant/google/product_spec/task_get/advanced/$id /* if (isset($task_ready['id'])) { $result[] = $client->get('/v3/merchant/google/product_spec/task_get/advanced/' . $task_ready['id']); } */ } } } } print_r($result); // do something with result } catch (RestClientException $e) { echo "\n"; print "HTTP code: {$e->getHttpCode()}\n"; print "Error code: {$e->getCode()}\n"; print "Message: {$e->getMessage()}\n"; print $e->getTraceAsString(); echo "\n"; } $client = null; ?>
The above command returns JSON structured like this:
{ "version": "0.1.20210805", "status_code": 20000, "status_message": "Ok.", "time": "0.0943 sec.", "cost": 0, "tasks_count": 1, "tasks_error": 0, "tasks": [ { "id": "08121145-2806-0188-0000-fbe09b08b89a", "status_code": 20000, "status_message": "Ok.", "time": "0.0250 sec.", "cost": 0, "result_count": 1, "path": [ "v3", "merchant", "google", "product_spec", "task_get", "advanced", "08121145-2806-0188-0000-fbe09b08b89a" ], "data": { "se_type": "shopping_specifications", "api": "merchant", "function": "product_spec", "se": "google", "language_code": "en", "location_code": 2840, "product_id": "8630889977405722046", "device": "desktop", "os": "windows" }, "result": [ { "product_id": "8630889977405722046", "type": "shopping_specifications", "se_domain": "google.com", "location_code": 2840, "language_code": "en", "title": "Apple iPhone 8 Plus - 64 GB - Silver - T-Mobile - GSM", "description": "iPhone 8 Plus introduces an all‐new glass design. The world's most popular camera, now even better. The smartest, most powerful chip ever in a smartphone. Wireless charging that’s truly effortless. And augmented reality experiences never before possible. iPhone 8 Plus. A new generation of iPhone.", "image_url": "https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9GcSdbgO6s2iZT4NhZC86HtsfewNrVQQqzpmebJ1y70HZR3B6wHiL-WF-aE8gFQ&usqp=CAY", "tags": [ "Apple", "iPhone", "iPhone 8", "iPhone 8 Plus", "iOS", "5.5″", "Fingerprint Scanner", "12 MP rear camera", "Smartphone", "With Wireless Charging" ], "check_url": "https://www.google.com/shopping/product/8630889977405722046/specs?&hl=en&gl=US&gws_rd=cr&uule=w+CAIQIFISCQs2MuSEtepUEUK33kOSuTsc", "datetime": "2021-08-12 08:45:01 +00:00", "item_types": [ "shopping_specification" ], "items_count": 3, "items": [ { "type": "shopping_specification", "rank_group": 1, "rank_absolute": 1, "position": "right", "xpath": "/html[1]/body[1]/div[3]/div[2]/div[1]/div[1]/table[1]/tr[2]", "block_name": "Universal Product Identifiers", "specification_name": "Brand", "specification_value": "Apple" }, { "type": "shopping_specification", "rank_group": 2, "rank_absolute": 2, "position": "right", "xpath": "/html[1]/body[1]/div[3]/div[2]/div[1]/div[1]/table[1]/tr[3]", "block_name": "Universal Product Identifiers", "specification_name": "Part Numbers", "specification_value": "364FC3802F6B4DB8A02B0E541E551BE8, A1897, I8P-64-SIL-TMO-E, I8P-64-SIL-TMO-G, I8P-64-SIL-TMO-VG, IPHONE8PLUSMQ902LLA, MQ8E2LL/A, MQ8U2LL/A, MQ912, MQ912LL/A, PH-AP-IP8000-FAC-064-PR-A1905-Z-1GFA" }, { "type": "shopping_specification", "rank_group": 3, "rank_absolute": 3, "position": "right", "xpath": "/html[1]/body[1]/div[3]/div[2]/div[1]/div[1]/table[1]/tr[4]", "block_name": "Universal Product Identifiers", "specification_name": "GTIN", "specification_value": "00190198456168" } ] } ] } ] }
Description of the fields for sending a request:
Field name | Type | Description |
---|---|---|
id |
string | task identifier unique task identifier in our system in the UUID format you will be able to use it within 30 days to request the results of the task at any time |
As a response of the API server, you will receive JSON-encoded data containing a tasks
array with the information specific to the set tasks.
You can also get all available SERP features by making a request to the following Sandbox URL:
https://sandbox.dataforseo.com/v3/merchant/google/product_spec/task_get/advanced/00000000-0000-0000-0000-000000000000
The response will include all available items in the Google Merchant Product Specifications Advanced endpoint with the fields containing dummy data.
You won’t be charged for using Sandbox endpoints.
Description of the fields in the results array:
Field name | Type | Description |
---|---|---|
version |
string | the current version of the API |
status_code |
integer | general status code you can find the full list of the response codes here Note: we strongly recommend designing a necessary system for handling related exceptional or error conditions |
status_message |
string | general informational message you can find the full list of general informational messages here |
time |
string | execution time, seconds |
cost |
float | total tasks cost, USD |
tasks_count |
integer | the number of tasks in the tasks array |
tasks_error |
integer | the number of tasks in the tasks array that were returned an error |
tasks |
array | array of tasks |
id |
string | task identifier unique task identifier in our system in the UUID format |
status_code |
integer | status code of the task generated by DataForSEO; can be within the following range: 10000-60000 you can find the full list of response codes here |
status_message |
string | informational message of the task you can find the full list of general informational messages here |
time |
string | execution time, seconds |
cost |
float | cost of the task, USD |
result_count |
integer | number of elements in the result array |
path |
array | URL path |
data |
object | contains the same parameters that you specified in the POST request |
result |
array | array of results |
product_id |
string | product ID in a POST array learn more about the parameter in this help center guide |
type |
string | search engine type in a POST array possible types: shopping_specifications |
se_domain |
string | search engine domain in a POST array |
location_code |
integer | location code in a POST array |
language_code |
string | language code in a POST array |
title |
string | title of the product |
description |
string | description of the product |
image_url |
string | URL of the product image |
tags |
array | tags of the product |
check_url |
string | direct URL to search engine results you can use it to make sure that we provided accurate results |
datetime |
string | date and time when the result was received in the format: “year-month-date:minutes:UTC_difference_hours:UTC_difference_minutes” example: 2019-11-15 12:57:46 +00:00 |
item_types |
array | types of items found on the product specification page possible item types: shopping_specification |
items_count |
integer | the number of results returned in the items array |
items |
array | items on the product specification page contains all product attributes and related data listed on the product specification page |
type |
string | type of element possible types: shopping_specification |
rank_group |
integer | position within a group of elements with identical type valuespositions of elements with different type values are omitted from rank_group |
rank_absolute |
integer | absolute rank on the product specification page absolute position among all the elements found on the product specification page |
position |
string | alignment of the element on the product specification page can take the following values: right |
xpath |
string | XPath of the element |
block_name |
string | name of the block of product attributes indicates the name of the product specification section in which the related element is listed |
specification_name |
string | product attribute attribute name of the product data specification |
specification_value |
string | content of the specification |